package org.obm.lmtp.impl;

import org.obm.lmtp.backend.IDeliveryAgent;
import org.obm.lmtp.backend.IMailboxValidator;
import org.obm.lmtp.backend.LmtpAddress;
import org.obm.lmtp.backend.LmtpEnvelope;
import org.obm.lmtp.backend.LmtpReply;
import org.obm.mina.Blob;

public interface ILmtpBackend extends IDeliveryAgent, IMailboxValidator {
	
	/**
	 * Gets account status.
	 */
	public LmtpReply getAddressStatus(LmtpAddress address);

	/**
	 * Delivers this message to the list of recipients in the message, and sets
	 * the delivery status on each recipient address.
	 */
	public void deliver(LmtpEnvelope env, Blob blob);

}